package com.xuecheng.content.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xuecheng.content.model.dto.SaveOrUpdateTeachPlanDto;
import com.xuecheng.content.model.dto.TeachplanDto;
import com.xuecheng.content.model.po.Teachplan;

import java.util.List;

/**
 * <p>
 * 课程计划 服务类
 * </p>
 *
 * @author luhao
 * @since 2023-05-10
 */
public interface TeachplanService extends IService<Teachplan> {
    /**
     * 根据课程Id查询课程计划信息
     * @param courseId 课程Id
     * @return 课程计划树形信息
     */
    List<TeachplanDto> queryTeachPlanByTreeNodes(Long courseId);

    /**
     * 添加或修改课程计划信息
     * @param dto 添加或修改课程信息内容
     * @return 是否添加或修改成功
     */
    boolean addOrAmendTeachPlan(SaveOrUpdateTeachPlanDto dto);

    /**
     * 根据课程计划id删除课程计划
     * @param coursePlanId 课程计划id
     * @return 是否删除成功
     */
    boolean removeTeachPlanById(Long coursePlanId);

    /**
     * 根据课程计划id上移
     * @param coursePlanId 课程计划
     * @return 是否上移成功
     */
    boolean moveUpTeachPlanById(Long coursePlanId);

    /**
     * 根据课程计划id上移
     * @param coursePlanId 课程计划
     * @return 是否上移成功
     */
    boolean moveDownTeachPlanById(Long coursePlanId);
}
